Skip to main content

Data Sharing in RT-Systems

Control software for machines and plants usually features interfaces to exchange commands, data and configurations with the environment during operation. Additionally, non-real-time-critical parts of the program are executed in separate environments or tasks. Therefore, it is necessary to exchange data between real-time and non-real-time tasks. Depending on the type and amount of data, different data structures are useful for this purpose, so that the synchronization mechanism does not negatively affect the real-time part. The same applies to real-time threads which need to exchange data.

The example below shows two of many of these scenarios. A non-real-time thread (NRT Thread) shares data with an RT thread. An example is an HMI interacting with a real-time control loop. The data exchange algorithm must ensure, that the NRT thread cannot negatively influence the real-time behavior of the RT thread. Furthermore, different use cases require different algorithms. E.g., a buffer is used, if only the latest value is of interest, and a queue must be used, if data miss is not acceptable. DetAlgorithms helps you select the right algorithms by providing the implementations and guidelines for the shown scenarios as well as many more.